#include <iostream>
#include <string>
#include <fstream>
#include "bundle.h"

int main(int argc,char* argv[])
{
    /*压缩文件例程*/
    // std::string ifilename = argv[1];//准备被压缩的文件
    // std::string ofilename = argv[2];//压缩后的文件名

    // std::ifstream ifs;
    // ifs.open(ifilename,std::ios::binary);
    // ifs.seekg(0,std::ios::end);
    // size_t fsize = ifs.tellg();
    // ifs.seekg(0,std::ios::beg);
    // std::string body;
    // body.resize(fsize);
    // ifs.read(&body[0],fsize);


    // std:: string packed = bundle::pack(bundle::LZIP,body);
    // std::ofstream ofs;
    // ofs.open(ofilename,std::ios::binary);
    // ofs.write(&packed[0],packed.size());
    // std::cout<<"压缩完毕"<<std::endl;
    // ifs.close();
    // ofs.close();


    /*解压文件例程*/
    std::string ifilename = argv[1];//准备被解压缩的文件
    std::string ofilename = argv[2];//解压缩后的文件名

    std::ifstream ifs;
    ifs.open(ifilename,std::ios::binary);//打开文件
    ifs.seekg(0,std::ios::end);
    size_t sz = ifs.tellg();
    ifs.seekg(0,std::ios::beg);
    std::string packed;
    std::cout<<"准备重定义大小"<<std::endl;
    packed.resize(sz);
    std::cout<<"重定义大小成功"<<std::endl;
    ifs.read(&packed[0],sz);
    std::cout<<"压缩文件读取成功"<<std::endl;

    std::string unpack = bundle::unpack(packed);

    std::ofstream ofs;
    ofs.open(ofilename,std::ios::binary);
    ofs.write(&unpack[0],unpack.size());

    std::cout<<"解压完毕"<<std::endl;

    ifs.close();
    ofs.close();
    return 0;
}